One or more aspects of the present invention relate to a data dump for a memory in a data processing system.
Bugs in operating system routines of a data processing system can lead to the result that a data processing system ceases to function properly. This event is referred to as a crash. In order to continue using the data processing system, it must be re-booted. The main memory of the data processing system containing all crash information (i.e. any data that might be relevant to find out the cause of the crash) is a volatile memory. In order to establish the reason for the crash, the crash data is analyzed. However, this analysis cannot be performed by the data processing system before it is rebooted. Therefore, the crash information must be stored in a non-volatile memory of the data processing system or forwarded to another data processing system before the reboot. For this purpose, dump programs are used (programs that send crash information from the volatile memory to a further memory or data processing system).
Exemplary data processing systems making use of a non-volatile memory for the storing of the crash information are disclosed in U.S. Pat. No. 8,489,932, U.S. Pat. No. 7,818,616, and U.S. Pat. No. 7,594,139, each of which is incorporated by reference herein in its entirety. As diskless data processing systems have no non-volatile memory usable for the storing of the crash information, the crash information must be forwarded to another data processing system which stores the crash information before the reboot. Exemplary data processing systems forwarding the crash information to another data processing system are disclosed in U.S. Pat. No. 7,484,127 and U.S. Pat. No. 7,509,521, each of which is incorporated by reference herein in its entirety. In general, the forwarding of the crash information requires at least a functioning network device driver and protocol stack.
In combination with the operating system Linux, kdump is often used as a dump program which forms part of a data dump method for a memory in a data processing system, wherein a first area (startup area) of the memory contains code of an operating system program (Linux kernel) before a crash of the operating system program, wherein the operating system program is operable before the crash, wherein a second area (reserved area) of the memory contains code of an emergency operating system program and code of the dump program before the crash, wherein the code of the dump program and the code of the emergency operating system program in the second area are transferred to the first area after the crash, and wherein the dump program and the emergency operating system program are operable after the crash. Additionally, the first area contains a file system and the second area contains an initial file system (often referred to as initrd) before the crash. The codes of the dump program and the emergency operating system program in the reserved area are usually summarized and referred to as kdump kernel. If no order of instructions to be executed is specified as it is the case after a crash, instructions stored in the first area (startup area) are executed preferentially (before instructions stored in other areas of the main memory) due to the location of the first area (startup area). For this reason, the codes of the dump program, the operating system and the initial file system in the second area (reserved area) are exchanged with code in the first area (startup area) after a crash and thereupon automatically executed. When executed kdump dumps data in specified memory areas and does not select any files as the crash can result in a destruction of data which are part of the file system so that a selection of data using the file system may not be possible. Hence, the amount of data to be dumped might be relatively large. Furthermore the dump data might contain sensitive (confidential) information which should not be made available for analysis.